﻿<?php

class DatabaseHandler
{
	var $host;  		//Länken till servern med databasen
	var $user;  		//Användarnamnet som används för att logga in
	var $password;		//Lösenordet för användare att logga in med
	var $con;			//En variabel som används för att upprätta anslutningen samt kontrollera om det går att ansluta
	var $database;		//Vilken databas som skall användas hos servern
	
	var $result;		//En extra variabel för att kunna hämta resultatet innan det konverteras över till en array
	
	function DatabaseHandler()
	{
		//Konstruktorn
		$this->host = "localhost";
		$this->user = "root";
		$this->password = "";
		$this->database = "exempel";
	}
	
	private function connect()
	{
		//Upprättar anslutningen
		$this->con = mysql_connect($this->host, $this->user, $this->password);
		
		if(!$this->con)
		{
			//Kunde inte ansluta, skickar vidare användaren till en felsida
			//header("Location: ../Default Sites/problem.php");
			echo "Kunde inte ansluta till servern";
		}
		else
		{
			//Anslutningen lyckades! Gör något speciellt här om så önskas!
			$this->createDatabase(); //Om inte databasen och tabellen finns så skapas dessa
		}
		
		//Ser till att en databas har blivit vald
		mysql_select_db($this->database, $this->con);
		
	}
	
	private function createDatabase()
	{
		$this->connect();
		if(!mysql_select_db($this->database, $this->con))
		{
			mysql_query("CREATE DATABSE exempel ENGINE=INNODB", $this->con);
		}
		$this->close();
	}
	
	private function createTables()
	{
		if(!mysql_query("SELECT * FROM phonebook"))
		{
			//Skapar tabeller om dessa inte kunde hittas
			mysql_query("CREATE TABLE phonebook IF NOT EXIST
							(p_id INT PRIMARY KEY AUTOINCREMENT NOT NULL,
							 p_fnamn VARCHAR(30) NOT NULL,
							 p_enamn VARCHAR(50) NOT NULL,
							 p_hemnr VARCHAR(12),
							 p_mobil VARCHAR(12),
							 p_adress VARCHAR(70) NOT NULL,
							 p_ort VARCHAR (40) NOT NULL,
							 p_postnr INT(5) NOT NULL)");
		}
	}
	
	private function close()
	{
		//Stänger ner anslutningen om den är öppnad
		if($this->con)
		{
			mysql_close($this->con);
		}
		else
		{
			//Om anslutningen är nerstängd, möjlighet till att använda felsökningssträng
			echo "Anslutningen är redan stängd! Kontrollera funktionen igen";
		}
	}
	
	function getPhoneBookToTable()
	{
		$this->connect(); //Ansluter
		$this->result = mysql_query("SELECT * FROM phonebook"); //Utför själva sqlkommandot, och tilldelar det i result
		$table_num = 0;
		$table_color = "";
		
		$table = 
		"<table style='margin-left:15px' cellpadding='8px'>
			<tr>
				<td>Förnamn</td>
				<td>Efternamn</td>
				<td>Hemnr</td>
				<td>Mobil</td>
				<td>Adress</td>
				<td>Ort</td>
				<td>Postnr</td>
			</tr>";
		
		while($row = mysql_fetch_array($this->result))
		{
			//Används för att färga varannan rad, för att lättare kunna avläsas
			if($table_num % 2) //om det går att dela med två
			{
				$table_color = "#EADCAE";
			}
			else
			{
				$table_color = "#FFFFFF";;
			}
			
			$table .= 
				"<tr class='tableContent' bgcolor='" . $table_color . "'>
					<td>" . $row['p_fnamn'] . "</td>
					<td>" . $row['p_enamn'] . "</td>
					<td>" . $row['p_hemnr'] . "</td>
					<td>" . $row['p_mobil'] . "</td>
					<td>" . $row['p_adress'] . "</td>
					<td>" . $row['p_ort'] . "</td>
					<td>" . $row['p_postnr'] . "</td>
				</tr>";

			$table_num++;
		}
		
		$table .= "</table>"; 
		
		$this->close();
		//if (!$row) return false;
		return $table;
	}
	
	function insertIntoPhoneBook($fnamn, $enamn, $hemnr, $mobil, $adress, $ort, $postnr)
	{
		$this->connect();
		
		//Om inte alla värden är satta så kommer inte sql-kommandot att köras
		if(isset($fnamn) && isset($enamn) && isset($hemnr) && isset($mobil) && isset($adress) && isset($ort) && isset($postnr))
		{
			echo "Du har missat att mata in något värde!";
			return;
		}
		else
		{
			$this->result = mysql_query("INSERT INTO phonebook 
										(p_fnamn, p_enamn, p_hemnr, p_mobil, p_adress, p_ort, p_postnr) 
										VALUES('" . $fnamn . "','" . $enamn . "','" . $hemnr . 
										"','" . $mobil . "','" . $adress . "','" . $ort . "'," . $postnr . ")");
		}
		
		$this->close();
	}
	
	function setHost($setHost)
	{
		$this->host = $setHost;
	}
	
	function setPassword($setPwd)
	{
		$this->password = setPwd;
	}
	
	function setUser($setUser)
	{
		$this->user = $setUser;
	}
	
	function setResult($setResult)
	{
		$this->result = $setResult;
	}
	
	function getHost()
	{
		return $this->host;
	}
	
	function getPassword()
	{
		return $this->password;
	}
	
	function getUser()
	{
		return $this->user;
	}
	
	function getResult()
	{
		return $this->result;
	}
	
	function getDatabase()
	{
		return $this->database;
	}
}

?>